/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ru.ssau.berlin.ejb.facade;

import java.util.List;
import javax.ejb.Local;
import ru.ssau.berlin.entity.GroupAttribute;
import ru.ssau.berlin.entity.GroupParameter;
import ru.ssau.berlin.entity.GroupType;
import ru.ssau.berlin.entity.PersonGroup;

/**
 *
 * @author Caesar
 */
@Local
public interface GroupFacadeLocal {

    void create(PersonGroup personGroup);

    void edit(PersonGroup personGroup);

    void remove(PersonGroup personGroup);

    PersonGroup find(long id);

    List<PersonGroup> findAll();

    List<PersonGroup> findByName(String name);

    GroupType findGroupType(String name);

    public GroupType findGroupType(long id);

    List<GroupType> findGroupTypes();

    List<PersonGroup> findFaculties();

    void createType(GroupType type);

    void editType(GroupType type);

    void removeType(GroupType type);

    public GroupAttribute findGroupAttribute(long id);

    public List<GroupAttribute> findGroupAttributes();

    void createAttribute(GroupAttribute attr);

    void editAttribute(GroupAttribute attr);

    void removeAttribute(GroupAttribute attr);

    void createParameter(GroupParameter parameter);

    GroupParameter findParameter(long id);

    void removeParameter(GroupParameter parameter);

    List<PersonGroup> findDepartments();

    List<PersonGroup> findStudentGroups();

}
